;复制当前的程序段 到 0:200处
assume cs:code  ; 将code包裹的代码段将要执行的段地址绑定到cs寄存器上

code segment

	mov ax,cs          ; 2 移动ds到程序段的起始位置
	mov ds,ax          ; 2

	mov ax,0020h       ; 3
	mov es,ax          ; 2 将ds这个数据段寄存器定位到 0020h 处

	mov bx,0           ; 3 bx用来作为循环过程中的偏移量使用 同时用作递增值写入数据偏移位置
	mov cx,22          ; 3 循环22次，猜测的字节数

  s:mov al,[bx]        ; 2
  	mov es:[bx],al     ; 3 先从ds+bx处复制到al中，再从al处复制到es+bx处
    inc bx             ; 1 偏移位置递增
    loop s             ; 2 循环执行

    mov ax,4c00h
    int 21h

code ends
end